package cn.webwheel.tutorials.di;

import cn.webwheel.FilterGroup;
import cn.webwheel.Main;
import cn.webwheel.di.utils.RichContainer;
import cn.webwheel.utils.DIFilter;

public class WebMain extends Main {

    // WebWheel DI容器
    RichContainer container = new RichContainer();

    protected void init() {

        // 绑定一个接口到实现类
        container.bind(MessageService.class, MessageServiceImpl.class);

        // 创建一个DI过滤器
        DIFilter diFilter = new DIFilter(container, "utf-8");

        // 创建一个过滤器组，仅含有一个DI过滤器
        FilterGroup group = root.append(diFilter);

        // 绑定web地址“/index.jsp”到动作类PageIndex
        group.bindAction("/index.jsp", PageIndex.class);
    }

    // 使用DI容器作为动作类的实例创建者
    public <T> T getInstanceOf(Class<T> cls) {
        return container.getInstance(cls);
    }
}